package com.doudou.collection.mapper;

import com.doudou.collection.pojo.dto.*;
import com.doudou.collection.pojo.entity.User;
import com.doudou.collection.pojo.entity.UserDetail;
import com.doudou.collection.pojo.vo.UserVO;
import org.springframework.stereotype.Repository;

import java.util.Date;

/**
 * @ClassName UserMapper
 * @Description 用户持久层模块
 * @Author blue sky
 * @Date 2023/5/30 23:14
 * @Version 1.0
 */
@Repository
public interface UserMapper {

    /**
     * 用户注册
     */
    int insertUser(User user);

    /**
     * 通过用户名查询用户信息
     */
    UserVO queryByUsername(String username);

    /**
     * 通过邮箱查询用户信息
     */
    UserVO queryByEmail(String email);

    /**
     * 通过手机号查询用户信息
     */
    UserVO queryByPhone(String phone);

    /**
     * 插入用户详情信息
     */
    int insertUserDetail(UserDetail userDetail);

    /**
     * 根据id修改个人详情
     */
    int updateUserDetailById(UserDetailDTO userDetailDTO);

    /**
     * 记录修改时间
     */
    int updateTimeById(Long id, Date updateTime);

    /**
     * 通过id修改用户名
     */
    int updateUsernameById(UserUpdateNameDTO userUpdateNameDTO);

    /**
     * 通过id查找密码
     */
    String queryPasswordById(Long id);

    /**
     * 通过id修改密码
     */
    int updatePasswordById(UserUpdatePwdDTO userUpdatePwdDTO);

    /**
     * 通过id修改邮箱
     */
    int updateEmailById(UserUpdateEmailDTO userUpdateEmailDTO);

    /**
     * 通过id修改手机号
     */
    int updatePhoneById(UserUpdatePhoneDTO userUpdatePhoneDTO);
}
